package com.chixing.day02;

public class ArraySortDemo {
    public static void main(String[] args) {
        int[] a = {67, 23, 12, 11, 56, 87, 23, 48, 22, 18};
        a = ArraySortDemo.bubboSort(a);

        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
    }
    /**
     * 冒泡排序：相邻元素比较
     * @param a 要排序的原数组
     * @return 返回已经通过冒泡排序排好的数组
     */
    public static int[] bubboSort(int[] a) {

        //int[]a={67, 23, 12, 11, 56, 87, 23, 48, 22, 18};
        //23,12,11,56,67,23,48,22,18,{87}
        // ---第一趟，参与比较的数据有n
        //12,11,23,56,23,48,22,18,{67}
        // ---第二趟，找出第二大的值，倒数第二位置，参与比较的数据有n-1
        for (int i = 0; i < a.length -1;i++) {
            for (int j = 0; j < a.length - i - 1; j++) {
                if (a[j] > a[j + 1]) {
                    int temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
        return a;
    }
    /**
     * 选择排序
     * @param a 要排序的原数组
     * @return 返回已经通过选择排序排好的数组
     */
    public static int[] selsctSort(int[] a) {
        //int[]a={67, 23, 12, 11, 56, 87, 23, 48, 22, 18};
        //第一趟找出最小值，放在a[0]位置上
        //[11],67,23,12,56,87,23,48,22,18
        //[11],[12],67,23,56,87,23,48,22,18
        //[11],[12],[18],67,56,87,23,48,22,23
        //第二趟找出最小值，放在a[1]位置上


        for (int i = 0; i < a.length-1; i++) {//外循环控制 比较的趟数
            int min=i;//i=0
            for (int n = i+1; n < a.length ;n++) {//内循环控制一趟中的比较  找到一趟中的最小值

                if (a[i] > a[n]) {
                    int temp = a[i];
                    a[i] = a[n];
                    a[n] = temp;
                }

            }
        }
        return a;
    }

}